#include <QApplication>
#include <QListView>
#include <QStandardItemModel>
#include <QStandardItem>
#include <QVBoxLayout>
#include <QWidget>
#include <QDebug>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    window.setWindowTitle("QListView 示例");
    window.resize(400, 300);

    QVBoxLayout *layout = new QVBoxLayout;

    // 创建 QListView
    QListView *listView = new QListView;

    // 设置为图标视图（可选）
    listView->setViewMode(QListView::IconMode);
    listView->setSpacing(10);  // 项之间间距
    listView->setResizeMode(QListView::Adjust);
    listView->setMovement(QListView::Static);  // 不允许拖动改变位置

    // 创建模型
    QStandardItemModel *model = new QStandardItemModel;

    // 添加项到模型
    for (int i = 0; i < 6; ++i) {
        QStandardItem *item = new QStandardItem;
        item->setText(QString("项 %1").arg(i + 1));
        item->setIcon(QIcon(":/images/123.jpg")); // 替换成你自己的图片
        item->setEditable(false); // 不允许直接编辑
        model->appendRow(item);
    }

    // 将模型设置到视图
    listView->setModel(model);

    // 获取点击项
    QObject::connect(listView, &QListView::clicked, [](const QModelIndex &index) {
        qDebug() << "你点击了：" << index.data().toString();
    });

    layout->addWidget(listView);
    window.setLayout(layout);
    window.show();

    return app.exec();
}
